In the computer world, an attribute defines an object, an element, or file. It generally represents a property of a property. Attributes can be considered as metadata. An attribute of an object usually consists of a name and a value; of an element, a type or class name; of a file, a name and extension. Each named attribute may have an associated set of rules called operations. An object definition can be extended by imposing data typing: a representation format, a default value, and legal operations (rules) and restrictions are all potentially involved in defining an attribute. For example, in computer graphics, line objects can have attributes such as: thickness (with real values), color (with descriptive values such as brown or green or values defined in a certain color model, such as RGB), etc. Markup languages, such as HyperText Markup Language (HTML) and eXtensible Markup Language (XML), use attributes to describe data and the formatting of data. In the C# programming language, attributes are metadata attached to a field or a block of code, equivalent to annotations in Java. Attributes are accessible through reflection. In many relational or multi-valued database systems, relative to SQL, tables are files, rows are items, and columns are attributes. In both, the database and code, the attribute is synonymous with a property and variable although attributes can be further defined to contain values and sub-values.
Editing a large number of objects that have a plurality of attributes is a time-consuming task and may lead to decrease in the system's performance and response time. Some groups of these objects may have identical attributes, which one might want to remain identical throughout the given group, even when some changes have to be performed on the these attributes. Without a solution for editing a plurality of attributes at the same time, it can be a very cumbersome task to first identify the members of group of objects with identical attributes and then change them, possibly even one by one.